草庐IT

objective-c - Xcode 和 XIB 自文档

全部标签

c++ - 在 Xcode 中的特定行显示运行时错误消息

我想在Xcode中以C/C++代码运行时显示自定义错误消息。例如,这可以用于自定义assert()函数。我想像SenTestingKit那样内联显示消息:现在我唯一能做的就是使用__builtin_trap停在正确的行。但是没有显示自定义错误消息。 最佳答案 我对xcode不熟悉,但其他地方几乎都是这样做的。您的自定义断言将如下所示:#defineMY_ASSERT(a1,a2,desc,...){\PrintAssertMessage(...);\DebugBreak();\}在Windows中,win32API中已经有一个Deb

c++ - xcode std::wcout 与 wchar_t 或 std::wstring!

我正在尝试将xcode中的wstring/wchar_t打印到控制台,但不幸的是它只适用于基本字符(我认为是ascii)字符,其他所有字符都以数字显示,例如以下内容:std::cout当cout版本按预期打印“äöüu”时,我在使用wchar_t时得到以下信息:\344\366\374u关于如何解决这个问题有什么想法吗?我正在使用xcode3.2.264位和gcc4.2,文件编码设置为Unicode(UTF-8)谢谢! 最佳答案 我有一个类似的问题,但与wostream/wofstream相关。用谷歌搜索,这是答案:tc_ofstr

c++ - 提升.Python : Getting a python weak reference to a wrapped C++ object

我已经使用Boost.Python包装了一个C++类。这些对象在C++端具有强引用(boost::shared_ptr),并且在Python中也可能存在断断续续的强引用。到目前为止,一切正常。但是,如果我从其中一个强引用创建一个python弱引用,那么一旦最后一个python强引用消失,这个弱引用就会被删除。我希望弱引用一直存在,直到C++端的最后一个强引用也消失为止。有可能实现吗?换句话说:有没有办法从python中找出特定的C++对象(由Boost.Python包装)是否仍然存在? 最佳答案 您如何持有对包装类的“C++强引用”

c++ - 虚继承与多态 : Is the cereal library messing with object layout?

我有四个类(A、B、C和D)遵循经典菱形图案和Container包含unique_ptr的类.我想使用cereal序列化这些类序列化库。structA{intf1;intf2;intf3}structB:publicvirtualA{templateinlinevoidsave(Archive&ar)const{std::cerrf1)f2)f3)f1f2f3CEREAL_REGISTER_TYPE(B);CEREAL_REGISTER_TYPE(C);CEREAL_REGISTER_TYPE(D);structContainer{std::unique_ptrobj;template

c++ - 非类型模板参数 : how to pass reference to base class object?

似乎无法传递对的引用派生对象的基类对象作为模板参数,正如我在这里尝试做的那样:structa{int_v;constexpra():_v(0){}constexpra(intv):_v(v){}};structc:publica{constexprc():a(){}constexprc(intv):a(v){}};externconstcdefault_a;constexprconstcdefault_a{1};consta&c_as_a=default_a;//^--thisline(16)causesnoerror-ccanbeconvertedtoatemplatestructb

c++ - Xcode 应用程序不再从应用程序存储的文件夹中读取输入

标题有点啰嗦,但基本上,我编写了一个应用程序,可以将其输入和输出读写到文本文件。在整个过程中,它会直接在与我的Xcode派生数据->项目->构建->产品->调试文件夹相同的目录中读取和写入文件。这是所有内容被写入和读取的地方。我没有为应用程序设置自定义路径,所以它只是保存在应用程序所在的位置。有史以来第一次,我运行了Apple的Instruments应用程序,尝试学习如何使用分析器。在Instruments中选择此应用程序作为目标后不久,我返回Xcode应用程序以进一步运行该程序。在Xcode中一切正常。它从文件中读取并打印到与文件夹相同位置的文件,但是如果我尝试通过单击文件并打开终端

c++ - Xcode 对 lambda 函数的支持

我有一个用VS编写的程序,我正试图将其移植到Xcode。我遇到了几个问题,包括使用lambda函数。由于Xcode使用gcc4.2,因此不支持C++11,我将无法使用任何lambda函数吗?如果我想在我的笔记本电脑上处理代码而不重写大部分代码,我是否必须安装gcc4.6并使用终端进行编译? 最佳答案 你有几个选择:按照C++2003标准重新编写代码。安装支持代码中使用的C++11功能的GCC,而不使用Xcode(您可以使用其他IDE,例如QtCreator或EclipseCDT)。等待Xcode附带支持C++11特性的LLVMC++

c++ - CMake 生成的 Xcode 项目无法找到从 Xcode 构建的二进制 "Products"

我正在尝试使用CMake生成的Xcode项目。构建时一切看起来都很好,除了Xcode找不到构建的二进制文件。下面是我在成功构建产品后截取的屏幕截图。我可以在项目源目录中看到它们。但是,请注意Xcode显示红色“HelloWorld”,这意味着它找不到产品。配置:Lion10.7.2上的CMake2.8.6和Xcode4.2这是CMakeLists.txtproject(HelloWorld)add_executable(${PROJECT_NAME}HelloWorld.cpp)这是HelloWorld.cpp的源码#includeintmain(){std::cout我尝试直接从Xc

c++ - Xcode 4.4 中 libc++ 的调试问题

当我尝试在C++上调试列表迭代时遇到问题。我做了一个简单的测试应用:intmain(intargc,constchar*argv[]){//insertcodehere...std::coutlist;list.push_back(1);list.push_back(2);-->list.push_back(3);//Linebeforestepoverfor(std::list::const_iteratori=list.begin();i!=list.end();i++){std::cout调试时,当我在标有箭头的行上时,当我跨过时,它开始执行来自c++文件的代码:“list”。我

c++ - dladdr : pointer-to-function vs pointer-to-object

希望这是一个相当简单的C++问题(而不是语言律师问题)。如何在C++中使用GNU扩展dladdr?通常人们会用C编写以下内容:#ifndef_GNU_SOURCE#define_GNU_SOURCE#endif#includestaticvoidwhere_am_i(){}intmain(){Dl_infoinfo;dladdr((void*)&where_am_i,&info);return0;}但是使用clang可以看到转换可能无效:$clang--versionDebianclangversion3.6.2-3(tags/RELEASE_362/final)(basedonLLV